const baseUrl = 'http://139.9.177.51:8099'


//定义一个函数--做对象转换为 字符串
//{ id: 30083,name:'张三' }
// id=30083&name=张三
// obj.xx   obj['xxx']
function ObjectToString(data) {
    let str = '';
    let keys = Object.keys(data); // ['id','name']
    //循环拼接字符串
    keys.forEach(function(item) { // 'id'
        str += `&${item}=${data[item]}` // &id=30083&name=张三
    })
    str = str.substr(1); // id=30083&name=张三
    return str
}
const http = {
    // get请求
    get: function(url, data, callback) {
        let xhr = new XMLHttpRequest();
        // 请求方式 地址 参数
        let str = ObjectToString(data);
        xhr.open('get', baseUrl + url + '?' + str);
        xhr.send();
        xhr.onreadystatechange = function() {
            if (xhr.readyState === 4 && xhr.status === 200) {
                let res = JSON.parse(xhr.responseText);
                callback(res)
            }
        }
    },

    //post请求
    post: function(url, data, callback) {
        let xhr = new XMLHttpRequest();
        //地址
        xhr.open('post', baseUrl + url)
            //请求头
        xhr.setRequestHeader('Content-Type', 'application/json')
            //发送+带参数
        xhr.send(JSON.stringify(data))
            //监听后端的返回数据---异步代码
        xhr.onreadystatechange = function() {
            //判断---步骤 4   ---http状态码 200
            if (xhr.readyState === 4 && xhr.status === 200) {
                //获取返回值
                let res = JSON.parse(xhr.responseText)
                    //返回 ---callback return 
                    // return res;
                callback(res)
            }
        }
    },


    //ajax 万能请求
    ajax: function(obj) {
        console.log(obj);
        //判断如果是get ---get请求
        if (obj.type == 'get') {
            http.get(obj.url, obj.data, obj.success)
        }
        // 如果是post ----post请求
        if (obj.type == 'post') {
            http.post(obj.url, obj.data, obj.success)
        }
    },

    //文件上传的请求
  //url 请求地址
  //fdKey 传输的文件的声明（后端定的名字）
  //fdValue  一个 file 对象
  //success 回调函数
  uploadFile: function (url, fdKey, fdValue, success) {
    const xhr = new XMLHttpRequest();
    // 构建form表单---必须用formdata
    const fd = new FormData();
    fd.append(fdKey, fdValue);

    xhr.open('POST', baseUrl + url);
    xhr.onreadystatechange = function () {
      if (xhr.readyState === 4 && xhr.status === 200) {
        const resData = JSON.parse(xhr.responseText)
        success(resData)
      }
    }
    xhr.send(fd);
  },
}


//挂载到window
window.http = http;
window.$$ = http;